package com.test;

public class Person {
    /*
    定义Person类
    饲养员属性:
    姓名，年龄
    生成空参有参构造，set和get方法
     */

    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    /*
    行为:
    keepPet(Dog dog,string something)方法
    功能:喂养宠物狗，something表示喂养的东西
    行为:
    keepPet(cat cat ,string something)方法
    功能:喂养宠物猫，something表示喂养的东西
     */
//    public void keepPet(Dog dog,String something){
//        System.out.println("年龄为"+age+"岁的"+name+"养了一只"+dog.getColor()+"颜色的"+dog.getAge()+"岁的狗");
//        dog.eat(something);
//    }
//    public void keepPet(Cat cat ,String something){
//        System.out.println("年龄为"+age+"岁的"+name+"养了一只"+cat.getColor()+"颜色的"+cat.getAge()+"岁的猫");
//        cat.eat(something);
//    }

    //想要一个方法，能接收所有的动物，包括猫，包括狗
    //方法的形参:可以写这些类的父类Animal
    public void keepPet(Animal animal,String something){
        if(animal instanceof Dog dog){
            System.out.println("年龄为"+age+"岁的"+name+"养了一只"+dog.getColor()+"颜色的"+dog.getAge()+"岁的狗");
            dog.eat(something);
        }else if(animal instanceof Cat cat){
            System.out.println("年龄为" + age + "岁的" + name + "养了一只" + cat.getColor() + "颜色的" + cat.getAge() + "岁的猫");
            cat.eat(something);
        }else {
            System.out.println("没有这种动物!");
        }
    }
}
